#ifndef BOXGAME_H
#define BOXGAME_H

#include <QPainter>
#include <QEvent>
#include <QKeyEvent>
#include <QString>
#include <QImage>
#include <QRect>
#include <QUrl>
#include <QSoundEffect>
#include <QPushButton>
#include <QMessageBox>
#include <QObject>

class BoxGame : public QObject
{
    Q_OBJECT
public:
    BoxGame();
    void initMap();
    void drawMap(QPainter* pDraw);
    void keyDown(QKeyEvent* event);
    int getRow();
    int getCols();
    bool gameOver();
    QSoundEffect pushSoundEffect; // 添加音效成员变量

    bool isGameEnded() const { return gameEnded; }
    void setGameEnded(bool ended) { gameEnded = ended; }
    void resetGame()
    {
        // 在这里实现重置游戏状态和变量的逻辑
        initMap(); // 重新初始化地图
        update(); // 更新游戏界面
    }

signals:
    void gameFinished(); // 游戏结束提示信息

protected:
    int map[10][10];

private:
    void update() {}
    bool gameEnded; // 游戏是否已结束
};

#endif // BOXGAME_H
